package com.zyf.chapter02.behavior.chain.achieve.second.arr;

import java.util.ArrayList;
import java.util.List;

/**
 * 组合类
 * @author yifeng
 */
public class HandlerChain {
    private List<IHandler> handlers = new ArrayList<>();

    public void addHandler(IHandler handler) {
        this.handlers.add(handler);
    }

    public void handle() {
        for (IHandler handler : handlers) {
            boolean handled = handler.handler();
            // 如果处理器链上的某个处理器能够处理这个请求，那就不会继续往下传递请求
            if (handled) {
                break;
            }
        }
    }
}
